package com.cn.wanxi.util.servlet;

import com.cn.wanxi.util.model.CompanyModel;
import com.cn.wanxi.util.model.NavModel;
import com.cn.wanxi.util.service.CompanyService;
import com.cn.wanxi.util.service.NavService;
import com.cn.wanxi.util.service.NewsService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/home")//页面访问的地址
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        后台要吧数据传递到前端
//        servlet 四大作用域 目的 就是为了存放一个临时数据  容器
//        pageContext  一个村   局部变量 页面  只在当前页面有效
//        request  镇          私有变量private  请求   只在请求页面有效
//        session   一个区    共有protected  会话    只在会话期 ，在当前浏览器使用
//        application 一个省   public  项目    项目周期  可以不同浏览器使用
//        String phone = "028-2211111222";
        /**
         * companyModel里面为空值，需要对其赋值
         * 如果直接在这里赋值，会破坏面向对象的耦合性
         * 所以需要让别人帮我们来做。
         */
        CompanyService companyService = new CompanyService();
        CompanyModel companyModel = companyService.getCompanyModel();
        req.setAttribute("companyModel", companyModel);//key，value  key代表地址  value实际值
//        导航数据的展示
//对象--应该怎么来分？  划分到最小  不能再次划分
//对象其实也是一个容器--有没有一个大的容器将所有对象装起来？
//        数组---每一个组的元素一样
//        数组的定义--方式？ 动态定义  静态定义
//        NavModel[] navModels = new NavModel[6];
        NavService navService = new NavService();
//        List<NavModel> list = navService.getNavModelList();
//        NavModel[] navModels = navService.getNavModels();
        req.setAttribute("navModels", navService.getNavModelList());

        NewsService newsService=new NewsService();
        req.setAttribute("newsModelList",newsService.getNewsModelList());
//        页面转发
        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);
    }
}
